package com.guigu.xm.bjy.controller;

import com.guigu.xm.advice.Interceptor;
import com.guigu.xm.bjy.service.impl.DFileServiceImpl;
import com.guigu.xm.pojo.*;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;

import javax.annotation.Resource;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;

@Controller
@RequestMapping("/dfile")
public class DFileControllers {
    @Autowired(required = false)
    DFileServiceImpl dFileService;
    @Autowired(required = false)
    HttpServletRequest request;
    @Autowired(required = false)
    HttpServletResponse response;

    /*查询登记人*/
    @GetMapping("/mz")
    public ModelAndView mz(){
        String login_id = (String)request.getSession().getAttribute("login_id");
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.setViewName("/jy/add.jsp");
        modelAndView.addObject("name",login_id);
       return modelAndView;

    }
    /*添加登记记录表*/
    @RequestMapping("/add")
    @ResponseBody
    public int add(@RequestBody DFile dFile){
        String s = dFileService.selectId();
        GoodsId goodsId = new GoodsId();
        goodsId.setProductId(Long.parseLong(s));
        Long aLong = goodsId.addId();
        dFile.setProductId(aLong.toString());
        dFile.setCheckTag("S001-0");
        dFile.setChangeTag("D002-0");
        dFile.setPriceChangeTag("J001-0");
        dFile.setDeleteTag("C001-0");
        dFile.setDesignModuleTag("W001-0");
        dFile.setDesignProcedureTag("G001-0");
        dFile.setDesignCellTag("K001-0");
        Date date=new Date();
        dFile.setRegisterTime(date);
        int add = dFileService.add(dFile);
        if(add>0){
            return 1;
        }else {
            return 0;
        }
    }
    @Interceptor(methodName = "bjy查询所有")
    /*查询登记复核即分页*/
    @RequestMapping("/all")
    @ResponseBody
    public PageVo<DFile> FeList(@RequestBody Map<String,String> map,HttpServletRequest request){
        String page = map.get("page");
        String num = map.get("num");
        DFile dFile = (DFile)request.getSession().getAttribute("dFile");
        System.out.println(dFile);
        PageVo<DFile> dFilePageVo = dFileService.find(num,page,dFile);
        System.out.println("/"+dFilePageVo);
        return dFilePageVo;
    }

    /*查询商品编号点复核跳页面*/
    @GetMapping("/findById")
    @ResponseBody
    public void findById(){
        String id = request.getParameter("id");
        try {
            request.setAttribute("fhId",id);
            request.getRequestDispatcher("/jy/fh.jsp").forward(request,response);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /*查询商品编号赋值到页面中*/
    @GetMapping("/findDfileById")
    @ResponseBody
    public DFile findById(Integer id){
        DFile dFile = new DFile();
        dFile.setId(id);
      return dFileService.ByDfileId(id);

    }

    @Interceptor(methodName = "用户登录")
    /*复核修改状态*/
    @GetMapping("/upDFileById")
    @ResponseBody
    public void upDFileById(Integer id,String status){
        DFile dFile = new DFile();
        dFile.setId(id);
        dFile.setCheckTag(status);
        dFileService.upDfileByID(dFile);
    }

    @RequestMapping("/sersion")
    @ResponseBody
    public int coouki(@RequestBody DFile dFile,HttpServletRequest request) throws ServletException, IOException {
        request.getSession().setAttribute("dFile",dFile);
        return 1;
    }

    /*产品档案删除*/
    @PostMapping("/DelDFile")
    @ResponseBody
    public PageVo<DFile> upDel(@RequestBody Map<String,String> map){
        String page = map.get("page");
        String num = map.get("num");
        DFile dFile = (DFile)request.getSession().getAttribute("dFile");
        PageVo<DFile> dFilePageVo = dFileService.upDel(page,num,dFile);
        System.out.println("/"+dFilePageVo);
        return dFilePageVo;
    }
    @Interceptor(methodName = "用户登录")
    @GetMapping("/upId")
    @ResponseBody
    public void upId(Integer id){
        String status="C001-1";
        DFile dFile = new DFile();
        dFile.setId(id);
        dFile.setDeleteTag(status);
        dFileService.upDfileId(dFile);
    }

    /*产品档案恢复*/
    @PostMapping("/Huifu")
    @ResponseBody
    public PageVo<DFile> Huifu(@RequestBody Map<String,String> map){
        String page = map.get("page");
        String num = map.get("num");
        DFile dFile = (DFile)request.getSession().getAttribute("dFile");
        PageVo<DFile> dFilePageVo = dFileService.delHui(page,num,dFile);
        return dFilePageVo;
    }

    @GetMapping("/denghf")
    @ResponseBody
    public void danghf(Integer id){
        String status="C001-0";
        DFile dFile = new DFile();
        dFile.setId(id);
        dFile.setDeleteTag(status);
        dFileService.upDfileId(dFile);
    }


    /*产品档案永久删除*/
    @PostMapping("/DelForever")
    @ResponseBody
    public PageVo<DFile> DelForever(@RequestBody Map<String,String> map){
        String page = map.get("page");
        String num = map.get("num");
        DFile dFile = (DFile)request.getSession().getAttribute("dFile");
        PageVo<DFile> dFilePageVo = dFileService.delHui(page,num,dFile);
        return dFilePageVo;
    }

    @GetMapping("/delForever")
    @ResponseBody
    public void delForever(Integer id){
        DFile dFile = new DFile();
        dFile.setId(id);
        dFileService.del(id);
    }

    /*查询商品显示在设计单前面的表格中*/
    @RequestMapping("/chafood")
    @ResponseBody
    public PageVo<DFile> chafood(@RequestBody Map<String,String> map,HttpServletRequest request){
        String page = map.get("page");
        String num = map.get("num");
        DFile dFile = (DFile)request.getSession().getAttribute("dFile");
        System.out.println(dFile);
        PageVo<DFile> dFilePageVo = dFileService.chafood(num,page,dFile);
        System.out.println("/"+dFilePageVo);
        return dFilePageVo;
    }

    /*修改设计单状态不显示页面*/
    @GetMapping("/upsjd")
    @ResponseBody
    public int upsjd(String productId){
       return dFileService.wlsjd(productId);
    }

    /*根据编号查到并赋予值给到设计单中*/
    @GetMapping(value = "xx/{productId}")
    @ResponseBody
    public DFile bh(@PathVariable("productId") String productId){
        DFile bh = dFileService.bh(productId);
        return bh;
    }

    /*查询所有物料显示在有添加的页面*/
    @RequestMapping("/chawl")
    @ResponseBody
    public PageVo<DFile> chawl(@RequestBody Map<String,String> map,HttpServletRequest request){
        String page = map.get("page");
        String num = map.get("num");
        DFile dFile = (DFile)request.getSession().getAttribute("dFile");
        PageVo<DFile> dFilePageVo = dFileService.chawl(num,page,dFile);
        return dFilePageVo;
    }

}

